Skip to main content

Firebolt

Summary

This document covers the information to gather from Firebolt in order to configure a Qarbine data service. The data service will use the Qarbine Firebolt driver. You can define multiple data services that access the same Firebolt endpoint though with varying credentials. Once a data service is defined, you can manage which Qarbine principals have access to it and its associated Firebolt data. A Qarbine administrator has visibility to all data services. See https://firebolt.io for more information.

Firebolt Configuration

Sign on to your Firebolt console at https://app.firebolt.io.

Firebolt Core

Firebolt Core offers a robust subset of the standard Firebolt cloud features.The following is needed to configure Qarbine to access it.

  • IP address,
  • port, and
  • catalog.

Verify the port is accessible from Qarbine. For example, in AWS adjust the security group rules.

Access Credentials

User Credentials

The user and password credential for Qarbine should be a read only user. If necessary create a read only user by clicking on   .
Enter the email that you have control over.

  

The email must be in the same domain or the following message will appear

  

The account to use for Qarbine access should have a role as shown below.

  

Click

  

Follow the instructions in the email to create the account. There will be an initial account setup email and a second account verification email.

NOTE- Be sure the computer from which you are receiving the account emails is not logged in to Firebolt. That confuses the account setup process.

These values will be used in the Qarbine server options as shown below

userName=someOne,
password=somethingSecret

Service Account Credentials

Refer to the information at this page https://docs.firebolt.io/managing-your-account/service-accounts.html

The service account role should be ‘viewer’.

The service account name and secret will be used in the Qarbine server options as shown below

clientId=someServiceAccount,
clientSecret=somethingSecret

Determining the Endpoint

The endpoint format is

 <engine-name>.<account-name>.<region>.app.firebolt.io

Click

  

Choose the database of interest

  

In the script area enter

SELECT NOW();

Click

  

If the database is not running you will see a prompt

  

If so, click

  

You will see a status message.

  

Wait while the database starts.
Once started, you should be able to run the simple query.

In your browser open developer tools via control-shift-eye.
Click on

  

Run a simple query.

Click on any entry on the left.

  

Review the information on the right.

  

The endpoint is the text up to, but not including, the ‘/?’.

Firebolt Database Inactivity

Note that Firebolt has an auto shutdown option based on inactivity. In the Data Source Designer for example, if the engine is not running you may see the following.

  

Another error that may be seen is shown below.

  

Qarbine Configuration

Compute Node Preparation

Determine which compute node service endpoint you want to run this data access from. That URL will go into the Data Service’s Compute URL field. Its form is “https://domain:port/dispatch”. A sample is shown below.

  

The port number corresponds to a named service endpoint configured on the given target host. For example, the primary compute node usually is set to have a ‘main’ service. That service’s configuration is defined in the ˜./qarbine.service/config/service.main.json file. Inside that file the following driver entry is required

"drivers" :[
. . .
"./driver/fireboltDriver.js"
]

The relevant configuration file name for non primary (main) Qarbine compute nodes is service.NAME.json. Remember to have well formed JSON syntax or a startup error is likely to occur. If you end up adding that entry then restart the service via the general command line syntax

pm2 restart <service>

For example,

pm2 restart main

or simply

pm2 restart all

Data Service Definition

Open the Administration Tool.

  

A data service defines on what compute node a query will run by default along with the means to reach to target data. The latter includes which native driver to use along with settings corresponding to that driver. Multiple Data Sources can reference a single Data Service. The details of any one Data Service are thus maintained in one spot and not spread out all over the place in each Data Source. The latter is a maintenance and support nightmare.

To begin adding a data service click

  

On the right hand side enter a name and optionally a description.

  

Set the Compute URL field based on the identified compute node above. Its form is “https://domain:port/dispatch”. A sample is shown below.

  

Also choose the “Firebolt” driver.

  

Firebolt Core

The Qarbine server template will be of the form

http://IP_ADDRESS_OR_NAME:PORT

For example,

  

Enter the catalog to access in the generic database field as shown below.

  

Managed Firebolt

The server template is the engine endpoint. The format is

<engine-name>.<account-name>.<region>.app.firebolt.io

An example is shown below.

  

The server options provide your authorization information. This can be the userName and password values separated by a comma as shown below.

  

An engine name may also be specified as a server option using the “engineName” key. You can reference environment variables using the syntax %NAME%. The strings should be quoted and the key\value pairs separated by commas.

Enter the catalog to access in the generic database field as shown below.

  

In General

Enable the data service for the desired general user group.

  

Test your settings by clicking on the toolbar image highlighted below.

  

The result should be

  

If you see

  

then go back and check the server option values.

If you see

  

the go back and check your endpoint in the server template.

Save the Data Service by clicking on the image highlighted below.

  

The data service will be known at the next log on time. Next, see the Firebolt query interaction and any tutorial for information on interacting with Firebolt from Qarbine.

References

For more information see https://docs.firebolt.io/.